﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Lib.erros;

namespace Lib.util
{
    public class ManegerCon : IManegerCon
    {
        private static ManegerCon instancia;

        private static string local = ".";
        private static string bancoDeDados = "intermed";
        private static string usuario = "sa";
        private static string senha = "123456";

        private string url = "Data Source=" + local + ";Initial Catalog=" + bancoDeDados + ";Persist Security Info=True;User ID=" + usuario +";Password=" + senha + ";";

        private ManegerCon()
        {

        }

        public static ManegerCon GetInstancia()
        {
            if (instancia == null)
            {
                instancia = new ManegerCon();
            }
            //Retorna a instância da classe ManegerCon.
            return instancia;
        }

        public SqlConnection Conectar()
        {
            try
            {
                //Realiza a conexão com o SGBD.
                SqlConnection conexao = new SqlConnection(url);
                //Abre a conexão com o SGDB.
                conexao.Open();
                //Retorna a conexão com o SGBD.
                return conexao;
            }catch(SqlException erro){
                throw new ErroAcessoDB(erro);
            }
        }

        public void Desconectar(SqlConnection conexao)
        {
            try
            {
                //Fecha uma conexão com o SGBD.
                conexao.Close();
            }catch(SqlException erro)
            {
                throw new ErroAcessoDB(erro);
            }
        }
    }
}
